import { Link } from 'expo-router'
import { openBrowserAsync } from 'expo-web-browser'
import { type ComponentProps } from 'react'
import { Platform } from 'react-native'

type Props = Omit<ComponentProps<typeof Link>, 'href'> & { href: string }

export function ExternalLink({ href, ...rest }: Props) {
	return (
		<Link
			target="_blank"
			{...rest}
			href={href}
			onPress={async (event) => {
				if (Platform.OS !== 'web') {
					// Prevent the default behavior of linking to the default browser on native.
					event.preventDefault()
					// Open the link in an in-app browser.
					await openBrowserAsync(href)
				}
			}}
		/>
	)
}
